﻿
namespace Patterns4Net.Attributes
{
    /// <summary>
    /// Abstraction level is used by Architecture Explorer to generate its diagrams.
    /// </summary>
    /// <remarks>
    /// <para>Abstraction level can be assigned to patterns, pattern roles, 
    /// or individual concrete classes (by using the Abstraction attribute).</para>
    /// </remarks>
    public enum AbstractionLevel
    {
        /// <summary>
        /// Denotes a domain specific element, which is rather 
        /// important for understanding of overall system architecture.
        /// </summary>
        Higher = 0,

        /// <summary>
        /// Denotes an element with medium importance for 
        /// understanding overall system architecture, but rather higher importance 
        /// for understanding package architecture details.
        /// </summary>
        Normal = 1,

        /// <summary>
        /// Denotes an infrastructural element with low importance for 
        /// understanding overall package architecture.
        /// </summary>
        Low = 2,
    }
}
